Set directory
pwd <- getwd()
myfiles <- "Formula1_Data"
data.folder <- paste0(pwd,"/",myfiles)
Import files
circuits <- read.csv(paste0(data.folder,"/circuits.csv"))
constructor_results <- read.csv(paste0(data.folder,"/constructor_results.csv"))
constructor_standings <- read.csv(paste0(data.folder,"/constructor_standings.csv"))
constructors <- read.csv(paste0(data.folder,"/constructors.csv"))
driver_standings <- read.csv(paste0(data.folder,"/driver_standings.csv"))
drivers <- read.csv(paste0(data.folder,"/drivers.csv"))
lap_times <- read.csv(paste0(data.folder,"/lap_times.csv"))
pit_stops <- read.csv(paste0(data.folder,"/pit_stops.csv"))
qualifying <- read.csv(paste0(data.folder,"/qualifying.csv"))
races <- read.csv(paste0(data.folder,"/races.csv"))
results <- read.csv(paste0(data.folder,"/results.csv"))
seasons <- read.csv(paste0(data.folder,"/seasons.csv"))
status <- read.csv(paste0(data.folder,"/status.csv"))
drivers <- drivers %>%
mutate(fullname=(paste(surname,forename, sep = ", ")))
constructor_standings_name <- left_join(constructor_standings,constructors,
by=c("constructorId"))
str(races)
## 'data.frame': 1058 obs. of 8 variables:
## $ raceId : int 1 2 3 4 5 6 7 8 9 10 ...
## $ year : int 2009 2009 2009 2009 2009 2009 2009 2009 2009 2009 ...
## $ round : int 1 2 3 4 5 6 7 8 9 10 ...
## $ circuitId: int 1 2 17 3 4 6 5 9 20 11 ...
## $ name : chr "Australian Grand Prix" "Malaysian Grand Prix" "Chinese Grand Prix" "Bahrain Grand Prix" ...
## $ date : chr "2009-03-29" "2009-04-05" "2009-04-19" "2009-04-26" ...
## $ time : chr "06:00:00" "09:00:00" "07:00:00" "12:00:00" ...
## $ url : chr "http://en.wikipedia.org/wiki/2009_Australian_Grand_Prix" "http://en.wikipedia.org/wiki/2009_Malaysian_Grand_Prix" "http://en.wikipedia.org/wiki/2009_Chinese_Grand_Prix" "http://en.wikipedia.org/wiki/2009_Bahrain_Grand_Prix" ...
Circuits
races_1 <- races %>%
group_by(name, circuitId) %>%
count(name) %>%
rename(Total_Races= n)
races_join1 <- left_join(races_1, circuits,
by =c("circuitId"))
world_map <- map_data("world")
races_plot1 <- ggplot() +
geom_polygon(data = world_map, aes(x=long, y = lat, group = group), fill="darkgreen", alpha=0.3) +
geom_point(data=races_join1, aes(x=lng, y=lat, colour=Total_Races,
text = paste(" Races:",Total_Races,"\n",name.y," \n",location,", ",country)))+
scale_color_viridis(option="magma", trans="log",name="Total Races", breaks =c(1,5,10,30,60))
## Warning: Ignoring unknown aesthetics: text
fig1 <- ggplotly(races_plot1, tooltip="text")
fig1
Drivers
driverstart_join1 <- left_join(driver_standings, drivers,
by =c("driverId"))
driverstart_join1 <- driverstart_join1 %>%
group_by(driverId) %>%
mutate(race_starts=n()) %>%
mutate(fullname=(paste(forename, surname,sep = " ")))
driverstart_plot <- ggplot() +
geom_bar(data=driverstart_join1,aes(y=reorder(fullname,race_starts),fill=nationality,stat="count"))
## Warning: Ignoring unknown aesthetics: stat
fig2 <- ggplotly(driverstart_plot)
fig2
driver_results_join1 <- left_join(results,drivers,
by=c("driverId"))
driver_results_join2 <- left_join(driver_results_join1,constructors,
by=c("constructorId"))
driver_results_join2_win <- driver_results_join2 %>%
filter(position=="1") %>%
group_by(driverId, constructorId) %>%
mutate(wins=n())
driverstart_win_plot <- driver_results_join2_win %>%
count(fullname, name,wins,surname) %>%
ggplot() +
geom_col(aes(x=reorder(fullname,n,sum),y=n, fill=name,text = paste(surname,"",wins, "\n",name))) +
coord_flip()
## Warning: Ignoring unknown aesthetics: text
#text = paste(" Races:",Total_Races,"\n",name.y," \n",location,", ",country)))+
fig3 <- ggplotly(driverstart_win_plot, tooltip="text")
fig3
Pit Stops
pitstop_race_join1 <- left_join(pit_stops,races,
by=c("raceId"))
pitstop_race_join2 <- pitstop_race_join1 %>%
group_by(raceId) %>%
mutate(slowest.pit = max(duration, na.rm = T),
fastest.pit=min(duration, na.rm = T))
pitstop_race_plot <- ggplot() +
geom_point(data=pitstop_race_join2,aes(x=year, y=slowest.pit),colour="red") +
geom_point(data=pitstop_race_join2,aes(x=year, y=fastest.pit),colour="green") +
facet_wrap(~name)
fig4 <- ggplotly(pitstop_race_plot)
fig4